Jak działa Open Mercato
Open Mercato działa jako aplikacja Next.js. Moduły biznesowe korzystają ze wspólnych usług do kontroli dostępu, zapisu danych i pracy w tle. Poniższy schemat pokazuje, jak łączą się te elementy.
Na tej stronie
Co działa w jednej aplikacji?
Aplikacja włącza wybrane moduły biznesowe. Generowane rejestry łączą ich strony, trasy API i usługi z aplikacją. Moduł porządkuje kod; nie oznacza osobnej usługi wdrażanej na własnym serwerze.
Twoja aplikacja Next.js
Wspólne: uprawnienia · komendy · odczyt danych · zdarzenia
Kod i dokumentacja
Prześledź przykład
Od działania użytkownika do wyniku
Wybierz sytuację, a potem dowolny krok. Zobaczysz, kto wykonuje pracę, jakie dane otrzymuje i co przekazuje dalej.
Przykład
Otwierasz kartę klienta
Prześledź odczyt przez API modułu. Wybrana organizacja określa, do których rekordów żądanie może mieć dostęp.
Krok 1 / 4
Otwarcie karty
Strona prosi o dane konkretnego klienta. Razem z żądaniem przesyła sesję zalogowanego użytkownika.
- Otrzymuje
- customerId: "42"
- Przekazuje dalej
- Żądanie do API modułu
WynikPrzeglądarka wyświetla dane klienta zwrócone przez API.
Co może pójść nie tak?Nieznany lub niedostępny klient nie może ujawnić danych innej organizacji. Odpowiadają za to kontrola w trasie i zakres zapytania.
Gdzie szukać przyczyny błędu
| Objaw | Od czego zacząć |
|---|---|
| Własna strona się nie pojawia | Rejestracja modułu, wygenerowane trasy, a potem uprawnienie wymagane przez stronę. |
| Formularz wysyła dane, ale zapis jest odrzucany | Odpowiedź API, schemat danych i zakres dostępu; następnie komenda i jej reguły zapisu. |
| Zapis działa, ale drugi system nie ma nowych danych | Emisja zdarzenia, rejestracja jego obsługi, zadanie w kolejce i błędy workera. |
Kod i dokumentacja
generators/module-registry.ts · crud/factory.ts · src/factory.ts
Przykład: zapis klienta
Formularz klienta wysyła żądanie do API. Trasa zbudowana przez makeCrudRoute może sprawdzić dane i uprawnienia, a następnie wywołać zarejestrowaną komendę. Komenda wykonuje zmianę. DataEngine może połączyć zapis ze zdarzeniami i aktualizacją indeksu.
Bezpośredni zapis przez ORM może ominąć historię operacji, reguły zapisu lub zdarzenia używane przez zwykłą trasę. Jeśli import zmienia bazę, a ekran lub wyszukiwarka nadal pokazuje stare dane, porównaj kod importu ze ścieżką używaną przez formularz.
Kod i dokumentacja
Co trzeba uruchomić?
Zaplanuj aplikację i bazę danych. Workery, pamięć podręczną, wyszukiwarkę i magazyn plików dobierz do włączonych funkcji oraz wybranych konfiguracji. Ustal, gdzie są przechowywane dane i jak odtworzysz je po awarii.